home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
TPUG - Toronto PET Users Group
/
TPUG Users Group CD
/
TPUG Users Group CD.iso
/
CRS
/
crs60.d81
/
speed2ge
(
.txt
)
< prev
next >
Wrap
Commodore BASIC
|
2009-10-10
|
8KB
|
282 lines
100 REM********************************
110 REM*SPEEDSCRIPT TO GEOS CONVERSION*
120 REM** BY S. GAST AND R. ROLLINS **
125 REM********************************
130 IFFF=1THENSYS24576:REM*REBOOT GEOS
140 FORX=49152TO49490:REM*INSTALL ML
150 READD
160 POKEX,D
170 NEXTX
180 G$="GEOS "+CHR$(102)+CHR$(111)+CHR$(114)+CHR$(109)+CHR$(97)+CHR$(116)
190 PD$="[160][160][160][160][160][160][160][160][160][160][160][160][160][160][160][160]":PS$="[160][160][160][160][160][160][160][160][160][160][160][160][160][160][160]":NU$=CHR$(0)
200 N$=CHR$(0):H$=N$+N$+"[223]("+N$+"[223][223][223][223][223][223][223] "+N$+N$:REM GEOS PAGE HEADDER
210 PRINTCHR$(14)
220 POKE53280,0:POKE53281,15:POKE646,11
230 PRINT"[147] [201]NSERT DISK WITH [215]ORD [208]ROCESSOR FILE "
240 PRINT" ON IT INTO DISK DRIVE NUMBER 8"
250 PRINT" [208]RESS ANY KEY TO CONTINUE"
260 GETA$:IFA$=""THEN260
270 PRINT" [208]LEASE [215]AIT [146]"
280 OPEN15,8,15,"I0"
290 GOSUB 1800:REM CHECK ERROR CHANNEL
300 OPEN2,8,2,"#":REM PREPARE DIRECT ACCESS DISK BUFFER
310 GOSUB1800
320 PRINT#15,"U1:2 0 18 0":REM BRING TRACK 18 SECT 0 INTO BUFFER
330 GOSUB1800
340 PRINT#15,"B-P:2 173":REM POSITION POINTER TO START OF GEOS ID NAME
350 GOSUB1800
360 B$="":X=0
370 GOSUB1920:REM GET BYTE FROM CHANNEL 2
380 B$=B$+A$:REM CONCAT STRING FOR GEOS ID
390 X=X+1
400 IFX<11THEN 370:REM GET 11 CHARACTERS
410 IFB$<>G$THEN 1880:REM MAKE SURE ITS A GEOS DISK
420 PRINT"[147]"
430 POKE198,0:FC$="":FL$=""
440 INPUT"PLEASE ENTER FILENAME (16 LETTERS ONLY)";FL$
450 IF LEN(FL$)<1 OR LEN(FL$)>16THEN PRINT"[147] TRY AGAIN":GOTO40
460 FC$=RIGHT$(PD$,(16-LEN(FL$)))
470 FC$=FL$+FC$
480 PRINT"[147] [201]S THIS THE CORRECT FILE?"
490 PRINT" "FC$" [146]"
500 PRINT" [217]ES, [206]O OR [209]UIT (Y/N/Q)?"
510 POKE 198,0
520 GETA$:IFA$=""THEN 520
530 IFA$="N"THEN420
540 IFA$="Q"THEN 1850
550 IFA$<>"Y"THEN520
560 CLOSE2
570 PRINT"[147] [215][207][210][203][201][206][199] [146] "
580 OPEN2,8,2,"0:"+FL$
590 INPUT#15,EN,EM$,ET$,ES$
600 IFEN=62THEN2260
610 CLOSE2
620 PRINT#15,"M-R"CHR$(144)CHR$(2)
630 GET#15,DS$:IFDS$=""THENDS$=CHR$(0)
640 DS=ASC(DS$)
650 PRINT#15,"M-R"CHR$(148)CHR$(2)
660 GET#15,DP$:IFDP$=""THENDP$=CHR$(0)
670 DP=ASC(DP$)
680 PRINT#15,"M-R"CHR$(250)CHR$(2)
690 GET#15,A$:IFA$=""THENA$=CHR$(0)
700 BF=ASC(A$)
710 PRINT#15,"M-R"CHR$(252)CHR$(2)
720 GET#15,A$:IFA$=""THEN A$=CHR$(0)
730 BF=BF+(ASC(A$)*256)
740 OPEN2,8,2,"#"
750 GOSUB1800
760 PRINT#15,"U1:2 0 18"DS
770 GOSUB1800
780 PRINT#15,"B-P:2"(DP+28)
790 GOSUB1800
800 GET#2,A$:IFA$=""THENA$=CHR$(0)
810 FS=ASC(A$)
820 GET#2,A$:IFA$=""THENA$=CHR$(0)
830 FS=FS+(ASC(A$)*256)+5
840 IFBF-FS<0THEN2170
850 CLOSE2
860 PRINT"[147] [215][207][210][203][201][206][199] [160]"
870 OPEN3,8,3,"0:TEST.S.E.Q,S,W"
880 GOSUB1800
890 PRINT#3,"STEVE AND RICH";
900 CLOSE3
910 SYS 49161
920 OPEN3,8,3,"0:TEST.S.E.Q,S,R"
930 GOSUB1800
940 PRINT#15,"M-R"CHR$(144)CHR$(2)
950 GET#15,DS$:IFDS$=""THENDS$=CHR$(0)
960 DS=ASC(DS$)
970 PRINT#15,"M-R"CHR$(148)CHR$(2)
980 GET#15,DP$:IFDP$=""THENDP$=CHR$(0)
990 DP=ASC(DP$)
1000 CLOSE3
1010 GOSUB2310
1020 PRINT#3,NU$;
1030 GOSUB2230
1040 DT$=A$:DT=ASC(DT$)
1050 GOSUB2230
1060 SD$=A$:SD=ASC(SD$)
1070 PRINT#15,"U2:3 0 18"DS
1080 CLOSE3
1090 PRINT" [215][207][210][203][201][206][199] [146]"
1100 OPEN3,8,3,"0:TEST.S.E.Q,S,W"
1110 GOSUB1800
1120 FORX=1TO254
1130 READD:PRINT#3,CHR$(D);
1140 NEXTX
1150 CLOSE3
1160 GOSUB2310
1170 PRINT#3,NU$;
1180 GOSUB2230
1190 IT$=A$:IT=ASC(IT$)
1200 GOSUB2230
1210 IS$=A$:IS=ASC(IS$)
1220 PRINT#15,"U2:3 0 18"DS
1230 CLOSE3
1240 OPEN2,8,2,"0:"+FL$
1250 GOSUB1800
1260 OPEN3,8,3,"0:TEST.S.E.Q,S,W"
1270 GOSUB1800
1280 GOSUB2390
1290 PRINT#3,H$;
1300 SYS49152
1310 CLOSE3
1320 CK=PEEK(2):IFCK<>0THEN1950
1330 GOSUB2310
1340 PRINT#3,NU$;
1350 GOSUB2230
1360 TRACK=ASC(A$)
1370 GOSUB2230
1380 SECTR=ASC(A$)
1390 PRINT#15,"U2:3 0 18"DS
1400 CLOSE3
1410 POKE780,TRACK:POKE781,SECTR
1420 SYS 49155
1430 CK=PEEK(2):IFCK<>0THEN1950
1440 FL=PEEK(251):IFFL=0THEN1260
1450 GOSUB2310
1460 GOSUB1640
1470 PRINT#15,"U2:3 0 18"DS
1480 GOSUB1800
1490 PRINT#15,"U1:3 0"DT;SD
1500 GOSUB1800
1510 SYS49158
1520 PRINT#15,"U2:3 0"DT;SD
1530 GOSUB1800
1540 PRINT"[147] [208]ROGRAM [195]OMPLETE [146]"
1550 PRINT" [198]ILE IS"T"[157] PAGES LONG [146]"
1560 PRINT" [200]APPY TO HELP"
1570 PRINT" [208]RESS 'G' TO RETURN TO [199][197][207][211]"
1580 PRINT" ANY OTHER KEY TO QUIT
1590 [161]RR$:[139]RR$[178]""[167]1590
1600 [139]RR$[179][177]"G"[167]1850
1610 [137]2430
1620 [128]
1630 :
1640 [152]15,"M-R"[199](250)[199](2)
1650 [161]#15,A$:[139]A$[178]""[167]A$[178][199](0)
1660 BS[178][198](A$)
1670 [152]15,"M-R"[199](252)[199](2)
1680 [161]#15,A$:[139]A$[178]""[167]A$[178][199](0)
1690 BS[178]BS[170]([198](A$)[172]256)
1700 BC[178]BF[171]BS:BH[178][181](BC[173]256):BL[178]BC[171](BH[172]256)
1710 AC$[178]""
1720 [129]X[178]1[164][195](FL$):B$[178][202](FL$,X,1):[139]B$[178]"*"[167]X[178][195](FL$):[137]1740
1730 B[178][198](B$):[141]2120:AC$[178]AC$[170]B$:[130]X
1740 AC$[178]AC$[170][201](PS$,(16[171][195](AC$)))
1750 DI$[178][199](131)[170]DT$[170]SD$[170]AC$[170]IT$[170]IS$[170][199](1)[170][199](7)[170][199](86)[170][199](10)
1760 DI$[178]DI$[170][199](4)[170][199](1)[170][199](0)[170][199](BL)[170][199](BH)
1770 [152]3,DI$;
1780 [142]
1790 :
1800 [132]15,EN,EM$,ET$,ES$
1810 [139]EN[179]20[167][142]
1820 [153]"LOAD STR$ISK VALRROR WAIT
1830 PRINT" [208]LEASE RERUN PROGRAM AND TRY AGAIN
1840 [153]" "EN;EM$" "ET$" ";ES$
1850 [160]2:[160]3:[160]15
1860 [128]
1870 :
1880 [153]"LOAD (null)HIS IS NOT A CHR$EOS STR$ISK"
1890 [153]"PLEASE RERUN PROGRAM AND USE CHR$EOS DISK"
1900 [137]1850
1910 :
1920 [161]#2,A$:[139]A$[178]""[167]A$[178][199](0)
1930 [142]
1940 :
1950 [153]"LOAD (null)HIS IS A CORRUPTED FILE
1960 PRINT" [208]ROGRAM WILL NOT WORK ON IT
1970 [153]" (null)LEASE REWRITE FILE AND TRY AGAIN
1980 PRINT" PRESS 'Q' TO QUIT
1990 [153]" ATNNY OTHER KEY FOR CHR$EOS
2000 GETA$:IFA$=""THEN2000
2010 IFA$<>"Q"THEN2430
2020 GOTO1850
2030 PRINT"[147] "FC$" [146]"
2040 PRINT" IS NOT ON DISK [208]LEASE TRY AGAIN"
2050 PRINT" [197]NTER 'Y' TO TRY AGAIN
2060 [153]" ANY OTHER KEY TO QUIT
2070 POKE198,0
2080 GETA$:IFA$=""THEN2080
2090 IFA$<>"Y"THEN1850
2100 CLOSE2:CLOSE3:CLOSE15:GOTO190
2110 :
2120 IFB>64ANDB<91THENB=B+32:B$=CHR$(B)
2130 IFB>192ANDB<224THENB=B-96:B$=CHR$(B)
2140 RETURN
2150 PRINTB;ASC(B$):RETURN
2160 :
2170 PRINT"[147] [212]HERE IS NOT ENOUGH ROOM ON THIS DISK
2180 [153]" (null)LEASE TRANFER FILE TO ANOTHER
2190 PRINT" [199]OES DISK WITH MORE SPACE":GOTO1980
2200 "[147] [197][210][210][207][210] [146]
2210 [137]1850
2220 :
2230 [161]#3,A$:[139]A$[178]""[167]A$[178][199](0)
2240 [142]
2250 :
2260 [153]"LOAD(null)HE FILE IS NOT ON THIS DISK
2270 PRINT"[208]LEASE INSERT DISK WITH THE FILE
2280 [153]"INTO DRIVE #8 AND TRY AGAIN
2290 GOTO2050
2300 :
2310 OPEN3,8,3,"#"
2320 GOSUB1800
2330 PRINT#15,"U1:3 0 18"DS
2340 GOSUB1800
2350 PRINT#15,"B-P:3"DP
2360 GOSUB1800
2370 RETURN
2380 :
2390 T=T+1
2400 PRINT" [205]AKING [208]AGE [206]UMBER[146] "T
2410 RETURN
2420 :
2430 CLOSE2:CLOSE3:CLOSE15
2440 POKE53272,(PEEK(53272)AND15)OR192:POKE648,48
2450 PRINT"[147]"
2460 OPEN15,8,15:OPEN2,8,2,"GEOS BOOT,P,R":INPUT#15,GG:CLOSE2:CLOSE15
2470 IFGG=0THEN2520
2480 PRINT" [201]NSERT GEOS DISK IN DRIVE 0."
2490 PRINT" HIT ANY KEY TO CONT.....
2500 [161]A$:[139]A$[178]""[167]2500
2510 [137]2450
2520 [139]FF[178]0[167]FF[178]1:[147]"GEOS BOOT",8,1
2530 [128]
9999 [143] UNIVERSAL ML MODULE
10000 [131]76,170,192,76,109,192,76,127,192,76,147,192,0,0,2,0,169,0,133,2,32
10100 [131]204,255,162,3,32,201,255,169,12,32,210,255,32,204,255,96,162,2,32
10200 [131]198,255,32,207,255,166,144,208,6,72,32,204,255,104,96,72,169,255,133
10300 [131]251,32,204,255,104,96,72,162,3,32,201,255,104,72,32,210,255,32,204
10400 [131]255,104,205,169,192,240,10,238,13,192,173,13,192,201,79,144,8,169,0
10500 [131]141,13,192,238,12,192,96,169,255,133,2,96,172,14,192,153,0,207,200
10600 [131]138,153,0,207,200,240,188,140,14,192,96,162,3,32,201,255,160,0,185,0
10700 [131]207,32,210,255,200,208,247,32,204,255,96,162,0,169,0,157,0,207,232
10800 [131]169,255,157,0,207,232,208,242,169,255,141,15,192,96
10900 [143] *****************************
10999 [143] SPEEDSCRIPT MODULE
11000 [131]13,173,15,192
11100 [131]240,3,32,249,192,169,0,141,15,192,133,144,133,2,133,251,141,13,192
11200 [131]141,12,192,165,251,240,1,96,32,37,192,48,246,240,59,201,27,144,61
11300 [131]201,28,144,51,240,234,201,31,144,45,240,55,201,64,144,6,240,222,201
11400 [131]91,176,50,32,65,192,173,12,192,201,60,176,3,76,195,192,76,16,192,162
11500 [131]2,32,198,255,160,2,32,207,255,136,208,250,32,204,255,96,24,105,64,76
11600 [131]233,192,24,105,96,76,233,192,169,13,76,233,192,76,104,192,0,0,0,0,0
11700 [131]0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
11800 [131]0,0,0,0,0,0,0,0,0,0,0,0,0,0
11900 [143] *****************************
11999 [143] INFO BLOCK DATA
15000 [131]3,21,191
15100 [131]255,255,255,128,0,1,136,128,1,133,117,97,130,85,65,130,119,65,128,0
15200 [131]1,143,81,193,136,81,1,142,81,193,136,81,1,136,93,193,128,0,1,255,255
15300 [131]255,0,0,1,247,119,17,132,84,49,151,87,127,148,81,48,247,119,16,0,0,0
15400 [131]131,7,1,0,0,255,255,0,0,87,114,105,116
15500 [131]101,32,73,109,97,103,101,32,86,49,46,49,0,0,0,0
15600 [131]101,32,73,109,97,103,101,32,86,49,46,49,0,0,0,0
15610 [131]83,46,32,71,97,115,116,32,38,32,82,46,32,82,111,108,108,105,110,115
15700 [131]103,101,111,87,114,105,116,101,32,32,32,32,86,49,46,49,0
15800 [131]0,0,0,162,16,189,124,40,157,107,40,202,208,247,32,75,193,169,0,133,46
15900 [131]32,60,57,169,40,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
16000 [131]0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
16100 [131]0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0